@@ -4,6 +4,11 @@ module Agents |
||
| 4 | 4 |
cannot_create_events! |
| 5 | 5 |
|
| 6 | 6 |
API_URL = 'https://api.pushbullet.com/v2/pushes' |
| 7 |
+ TYPE_TO_ATTRIBUTES = {
|
|
| 8 |
+ 'note' => [:title, :body], |
|
| 9 |
+ 'link' => [:title, :body, :url], |
|
| 10 |
+ 'address' => [:name, :address] |
|
| 11 |
+ } |
|
| 7 | 12 |
|
| 8 | 13 |
description <<-MD |
| 9 | 14 |
The Pushbullet agent sends pushes to a pushbullet device |
@@ -61,26 +66,16 @@ module Agents |
||
| 61 | 66 |
end |
| 62 | 67 |
|
| 63 | 68 |
private |
| 64 |
- |
|
| 65 | 69 |
def query_options(event) |
| 66 | 70 |
mo = interpolated(event) |
| 67 |
- body = {device_iden: mo[:device_id], type: mo[:type]}
|
|
| 68 |
- case mo[:type] |
|
| 69 |
- when "note" |
|
| 70 |
- body[:title] = mo[:title] |
|
| 71 |
- body[:body] = mo[:body] |
|
| 72 |
- when "link" |
|
| 73 |
- body[:title] = mo[:title] |
|
| 74 |
- body[:body] = mo[:body] |
|
| 75 |
- body[:url] = mo[:url] |
|
| 76 |
- when "address" |
|
| 77 |
- body[:name] = mo[:name] |
|
| 78 |
- body[:address] = mo[:address] |
|
| 79 |
- end |
|
| 80 | 71 |
{
|
| 81 |
- :basic_auth => {:username => mo[:api_key], :password => ''},
|
|
| 82 |
- :body => body |
|
| 72 |
+ :basic_auth => {username: mo[:api_key], password: ''},
|
|
| 73 |
+ :body => {device_iden: mo[:device_id], type: mo[:type]}.merge(payload(mo))
|
|
| 83 | 74 |
} |
| 84 | 75 |
end |
| 76 |
+ |
|
| 77 |
+ def payload(mo) |
|
| 78 |
+ Hash[TYPE_TO_ATTRIBUTES[mo[:type]].map { |k| [k, mo[k]] }]
|
|
| 79 |
+ end |
|
| 85 | 80 |
end |
| 86 | 81 |
end |